/****************************************************************************
**
** Copyright (C) VCreate Logic Private Limited, Bangalore
**
** Use of this file is limited according to the terms specified by
** VCreate Logic Private Limited, Bangalore.  Details of those terms
** are listed in licence.txt included as part of the distribution package
** of this file. This file may not be distributed without including the
** licence.txt file.
**
** Contact info@vcreatelogic.com if any conditions of this licensing are
** not clear to you.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
****************************************************************************/

#ifndef MENU_H
#define MENU_H

#include <QMenu>

namespace GCF
{
	struct MenuData;
	class Menu : public QMenu
	{
	public:
		Menu(QWidget* parent=0);
		~Menu();

	private:
		MenuData* d;
	};

    struct MenuWidgetData;
    class MenuWidget : public QWidget
    {
    public:
        MenuWidget(QWidget* child, QWidget* parent=0);
        ~MenuWidget();

        void setShowWindowTitleLabel(bool val);
        bool isShowWindowTitleLabel() const;

        void setWidget(QWidget* widget);
        QWidget* widget() const;

    protected:
        bool eventFilter(QObject* obj, QEvent* event);
        void showEvent(QShowEvent* se);

    private:
        MenuWidgetData* d;
    };
}

#endif

